home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 6
/
The Arsenal Files 6 (Arsenal Computer).ISO
/
internet
/
wuucp10.zip
/
WUUCP.DOC
< prev
next >
Wrap
Text File
|
1996-03-23
|
23KB
|
550 lines
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
WUUCP v1.0
UUCP Gateway Software for WWIV
(c) 1995, TLM Software
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
You're probably wondering what makes this software any different than the
other UUCP->WWIV message converters. Well, I guess the main difference is
that it was written from the point of view of a WWIV SysOp rather than the
view of a Waffle SysOp (wwcp for example...) Some of the key features are:
1) Real Email Addresses! This means that you get an address of the form
"username@domain.name" rather than "usernumber-nodenumber@domain.name".
Example: My BBS internet address is bilbo@tlm.org. Users with multiple
words in their names (ie. John Doe), it translates them automagically
to the format of john.doe@domain.name, and back again on incoming mail.
2) Easy configuration of email and/or newsgroups. One easy to configure .INI
file does it all!
3) The ability to *EASILY* setup domains for networks, and even for remote
BBS's, even if they have no network connection other than yourself! Users
at that BBS get all the advantages of a UUCP connection, without the
hassle. Great way to make back the money you spend for your UUCP
connection... *grin* Networks, however, still retain the old addressing
scheme (usernumber-nodenumber), but then again, you're gating this for
*YOUR* users, right?
4) The ability to twit (delete) inbound/outbound mail from specific or
generic addresses. Someone abusing your gateway? Twit 'em!
5) Easy to use aliasing. Allows you to alias certain email addresses so
that they are forwarded to other addresses, or you can store them in
files or pipe them to programs...
6) Multiple configuration files. If you would rather keep different
files for different uses (more than one source of mail/news, for
example) you can specify the configuration file on the command line.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Prerequisites...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Ok, now to the nitty-gritty. This software basically requires that you have
a working copy of WWIV and a program to pickup your UUCP packets. The
UUCP dialer must do filename translation in the same manner as the Waffle
uucico program. UUPC is supposed to be capable of this, but has not been
tested. The public domain dialer uuslave is also capable of this, and is used
many times in place of Waffle. Again, this has not been tested. (If
someone gets these or other programs working with WUUCP, let me know how!)
You *MUST* also be using at least WWIV v4.24, and NET35. This is because
this software takes advantage of the features Wayne plugged into the newest
versions, most notably the ability to send email of the format:
Username@domain.name @nodenumber.NetworkName
You also need to have a copy of GZIP in your path, which is a decompression
utility similar to PKUNZIP, except it can only handle one file in a packet.
Unless your feed is going to be sending you uncompressed news batches, or
you do not intend to recieve newsgroups at all, this program is a necessity.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
How it works...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
WUUCP works by reading in the files that your feed/provider sends you,
namely the eXecute and Data files. The uucico software you are using
*MUST* use the name munging technique that the Waffle BBS uses, and must
output files with the extensions ".D" and ".X". Since WUUCP uses GZIP to
decompress compressed newsfeeds, it does not matter if your feed/provider
uses 12 or 16 bit compression. Also, all of those files must be stored
in one spool directory, as I haven't added the ability to use multiple
spool directories yet (and won't unless there's alot of call for it.)
You can however specify multiple config files, which you can use to
process multiple spool directories.
To use WUUCP, once you've copied the executables and written your WUUCP.INI
file, all you have to do is run either WUUCPIN to process inbound packets,
or WUUCPOUT to process outbound packets. These can be run from anywhere.
Both WUUCPIN and WUUCPOUT take the following command line parameters:
-f <filename>
This causes the program to use the specified config file instead of
the WUUCP.INI file located in your BBS directory. Must be the full
path to this file (ex: c:\bbs\wuucp2.ini)
-g <domain> | <network>
Causes WUUCP to only look for packets bound to or from the specified
gateway. The option can either be the domain name of a gateway, or
the name of one of your WWIV networks (WWIVnet for example.)
-d <debug level>
This option is only partially implemented right now, since WUUCP
automatically gives you error messages and status reports on what it
is doing. Will probably be removed in later versions, or changed to
a log file debug level.
Here's what my poll.bat (to pickup and send news/email) looks like:
@echo off
wuucpout (In case there are some network packets waiting)
uucico -s %1 -n tlm %2 %3 %4 %5 %6 %7 %8 %9 (Dial out)
wuucpin (Process anything that has arrived)
c:
cd \bbs
netcall c (Clean up any network packets)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
The executables...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
WUUCP comes with 4 executables. The only two you should ever have to run
manually are WUUCPIN.EXE and WUUCPOUT.EXE. The other two, DEBATCH.EXE and
DECUNB.COM, are used in the decompression of news packets. The WUUCPIN and
WUUCPOUT files need to be placed in your BBS directory, since they need to
know the location of your CONFIG.DAT file. The other two files can be placed
anywhere in your PATH.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
The WUUCP.INI file...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Installation can be a bit of a pain if you aren't familiar with UUCP and
the way WWIV does networking. However, all configuration options are located
in a file called WUUCP.INI, so at least you're not jumping from one file to
another. The WUUCP.INI file must be placed in your BBS directory. Here's a
trimmed down version of mine:
[GATEWAYS]
tlm.org 0 6026 6955 ; My BBS
comx.tlm.org 0 6034 6955 ; A fellow SysOp foolish enough
; to beta test for me... ;-)
acnet.tlm.org 1 7418 6955 ; A network gateway
[GENERAL]
KEEPHEADERS No
LOGGING Yes
NODENAME tlm
ORGANIZATION The Lonely Mountain BBS -=- 704.866.7353 -=- Gastonia, NC USA
REMOTEMACHINE char
SPOOLDIR D:\SPOOL\CHAR
TIMEZONE EST
[NEWSGROUPS]
ALTBBS alt.bbs
ATH alt.tv.highlander
CLC comp.lang.c
CLCPLUS comp.lang.c++
CLJAVA comp.lang.java
CLPASCM comp.lang.pascal.misc
CLPERLM comp.lang.perl.misc
COLM comp.os.linux.misc
COLS comp.os.linux.setup
COMP comp.os.msdos.programmer
RANTIQ rec.antiques
RAANIM rec.arts.anime
TPG talk.politics.guns
[ALIASES]
bilbo@comx.tlm.org = bilbo@tlm.org ; Regular email alias
listserv@tlm.org | c:\bbs\listserv ; Pipes the message through a
; listserv program
testacct@tlm.org > c:\bbs\testmsgs ; Writes out articles to a
; file
[TWITS]
*listserv*@* ; Listserv's? Through my gateway?
; Yeah, right...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
[GATEWAY] entries...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Each of the primary functions are grouped under bracketed [] headings. The
first one, [GATEWAYS], actually defines your internet gateways. Each entry
under that and before the next [] heading (or the end of the file), is
considered to be a seperate gateway.
Each entry follows the format of:
your.gateway.domain network_number wwiv_node uucp_node
your.gateway.domain The domain that the gateway will recieve and send
mail/news as.
network_number The network (0 - 255) that this domain should send
mail through. The number is just like that of
net33+ and WFido, that being your first network
is 0, second is 1, etc.
wwiv_node This is the nodenumber that the gateway should
send mail/news to. This is usually the node number
of your BBS on whatever Network you are gating
through. In cases where you have setup a domain
for another BBS, this will be *THEIR* nodenumber
on this network.
uucp_node This is the nodenumber that the gateway is listed
as in the BBSLIST.* files for the WWIV network.
For example, if you'll look in the BBSLIST.6 file
for WWIVnet, you'll see node number 6955 is tlm.org,
the gateway all my mail comes through.
** NOTE **
If you are gating newsgroups, the order that these entries appear in is
very important! Right now the software only looks for the first entry
when parsing news batches, and sends them through. The reason for this is
very simple, so far I haven't been able to come up with an easy/reliable
way of differentiating between gateways when it comes to newsgroups, whereas
email is very simple (each has a unique name, ie. their domain name.) If you
are only going to operate one gateway, then this will not in any way affect
you. Otherwise, you could end up sending 1000's of messages to some poor
schmuck who just wanted some email.... *grin*
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
[GENERAL] entries...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
The next heading, [GENERAL], lists general information about the gateway.
Some of these are optional, some are required for operation. Starting with
the required ones:
SPOOLDIR This is the directory that WUUCP should look in
to find incoming email and news, as well as the
directory that it will place outgoing messages in.
If you are using Waffle, this will be the spool
directory for your smarthost, usually something like
C:\WAFFLE\SPOOL\WHOEVER
REMOTEMACHINE This is the UUCP name of your smarthost/feed/provider.
Due to the method that waffle does it's name munging,
this has to be correct or WUUCP will not be able to
find the data files it needs.
NODENAME This is your UUCP nodename, as known to your feed.
Mine is tlm, yours may be a name you choose or may
be assigned to you, depending on your provider.
The optional ones are:
LOGGING This tells WUUCP whether or not to log problems,
as well as usage reports (mostly inbound news
traffic.) The default is yes.
KEEPHEADERS This is if you want WUUCP to keep the headers from
the messages it recieves. This can be useful if
someone is bombing your mail gateway, and you want
to see exactly where it came from. Be warned,
however, as some news articles can have headers in
excess of 30-40 lines (if someone crossposted to
every for.sale group for example.) The default is
no.
ORGANIZATION You can include a line in the headers of every
message you send out using an Organization: line.
This can be used for anything from advertising your
BBS to giving an address to report problems at. It
is however limited to 80 characters, anything over
that will be truncated. If this line is not
included, no Organization headers will be added.
TIMEZONE This is the 3 letter abbreviation for your timezone.
Mine is EST (Eastern Standard Time), yours will
depend on your geographical location.
ALIASOUTBOUND This is used in conjunction with the [ALIASES]
section. Basically what it tells WUUCP to do is
translate outbound email names. This can be
useful if you or one of your users has a long
BBS name, and wants a shorter email address, or
if a user has periods in his name but does not
want to use the <usernum-nodenum> email name.
Note that the email mod does not take this into
account when showing the user his email address!
(I'm working on that one...) The default is no.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
[NEWSGROUPS] entries...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
This is for many the bread and butter of any UUCP program, the ability
to bring in the ungodly amounts of messages that most newsgroups have (as
compared to the busiest of WWIV subs, which may have tens of messages/day,
some newsgroups get 1000+/day). The newsgroup entries are very
straight-forward. The format is:
SUBTYPE newsgroup
Where SUBTYPE is the subtype you want to use for this newsgroup when
importing it to WWIV.
When setting up WWIV to recieve newsgroups, it is recommended that you setup
your BBS as the host, and the gateway node as the subscriber. This will
allow you (if you choose) to more easily gate those newsgroups onto WWIV
networks, and also allows you to delete out undesirable articles if you choose
(like those damn advertisements that get posted to 5000 forsale groups...)
Also, please note the above comments under the [GATEWAYS] section with
regards to news and multiple gateways....
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
[ALIASES] entries...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
The [ALIASES] section is for aliasing email addresses, or for piping messages
out to programs/files. The format for each is:
emailaddress@domain = emailaddress@another.domain
This will alias an email address to another email address. Hard, huh? :)
emailaddress@domain | program
This will cause the message to be piped to the stdin (standard input) of
another program. This can be useful for things such as listservers, archive
programs, etc. Command line arguments are allowed.
emailaddress@domain > filename
This will cause all email to that address to be output to a file called
filename. This should be a full path, as WUUCP changes directories in the
course of running. Each message is delimited by a sequence of characters,
the decimal values of which are '02 12 06' and in hex would be '02 0C 06'.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
[TWITS] entries...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
The [TWITS] section allows you to delete mail/news to or from certain email
addresses. The format is very simple, it consists of any combination of
letters and numbers plus one special character, the asterisk '*'. Let's say
there was a person on your board who kept subscribing to mailing lists, and
you were getting tired of the traffic on your UUCP connection. You could
unsubscibe him from that list, and then setup a twit entry that looked like:
*listserv*@*
This would twit any outbound or inbound email to or from an email address
that contained the string "listserv" in it's name field, and from any domain.
You can use literal strings as well (if someone were abusing your gateway for
example..) such as username@domain, which would affect only mail or news
to/from that email address. To ban an entire domain, you could use:
*@domain
Anyways, I think you get the idea. If you have any questions about it, you
can email me and ask.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Sending Internet Email
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
I've included a mod to compile into your BBS so that your users can easily
send internet email, without actually knowing the mechanics of it. It's
not much on instructions, but it should do.... :)
Include the following function at the end of bbsovl1.c
/* [Cut Here] */
void send_iemail(void)
{
char s1[81], s2[81];
int i;
unsigned short sy,un;
char *tmpchr;
time_t t;
write_inst(INST_LOC_EMAIL,0,INST_FLAGS_NONE);
/* Undefine ALLOW_REGISTERED_ONLY if you only want registered users to
have access to Internet email... */
#define ALLOW_REGISTERED_ONLY
#ifdef ALLOW_REGISTERED_ONLY
if (!cs()) {
time(&t);
if (thisuser.registered == 0) {
nl();
pl("Internet Email restricted to Registered Users Only!\r\n");
return;
} else if (thisuser.expires < t) {
nl();
pl("Your registration has expired, Internet Email restricted to\r\nregistered users only!\r\n");
return;
}
}
#endif
nl();
strcpy(s2,thisuser.name);
for(i=0;i<strlen(s2);i++)
if(s2[i]==' ')
s2[i]='.';
strcat(s2,"@");
strcat(s2,get_string(2000));
strlwr(s2);
sprintf(s1,"9Your current Internet mailing address: %s\r\n",s2);
pl(s1);
nl();
pl("9If you wish to send mail beginning with a number, add a 1\"9 to the beginning.");
pl("9Enter the internet e-mail address you wish to send mail to");
outstr("7%2");
input(s1, 75);
strcat(s1, get_string(2001));
helpl=0;
irt[0]=0;
irt_name[0]=0;
parse_email_info(s1,&un,&sy);
grab_quotes(NULL, NULL);
if (un || sy)
email(un,sy,0,0);
if (sy == 0)
pl("Format Invalid.");
}
/* [Cut Here] */
Close BBSOVL1.C, and open up MMENU.C. Look for the following
statement:
case 'I':
nl();
if (menu_on()) {
printmenu(328);
getkey();
rip_pcb();
}
npr("%s (%s)\r\n",wwiv_version, wwiv_date);
nl(); existprint(get_string(1033));
existprint(get_string(1034));
break;
You've got two choices. You can either replace the above case
statement with:
case 'I':
send_iemail();
break;
Or, you can create a new case statement. An example would be
case '!':
send_iemail();
break;
You will need to create two entries in your BBS.STR file, I used
number 2000 and 2001. If you choose to use something different, make
sure to modify the two get_string calls to point to the new entries.
The two entries are your domain name, and the nodenumber of your gateway,
respectively. Examples are:
2000 : tlm.org
2001 : @6955.WWIVnet
Make sure to specify the network that the gateway is on, since if
you don't and that node number exists on another network, the user
will be asked what network they want to use (which could cause
problems...)
Recompile, and enjoy!
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Special Features
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
I noticed that there were a couple of circumstances where WUUCP would need
to handle things differently than usual. One of them was if someone on
the internet sent email to root@your.domain, obviously WWIV didn't know
who root was. So I changed it such that if an email is addressed to either
ROOT, NEWS, SYSADMIN, or POSTMASTER @ your.domain, it is automatically
forwarded to the #1 account at the WWIV node for that gateway.
Another situation arose when users had periods in their names. In this case,
the software will automatically translate their name to the <usernum-sysnum>
format on outgoing mail, and append the domain to that.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Bug fixes
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-=- v0.9c -=-
I noticed that every once in a while WUUCPIN would write out a message with
the wrong record length. Turns out that I forgot to reinitialize it
when it was processing multiple groups in a single article.... Should be
fixed now...
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Standard Disclaimer
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
WUUCP is provided "as is", without warranty of any kind or fitness for a
particular purpose, either expressed or implied, all of which are hereby
explicitly disclaimed.
And I make absolutely no guarantees that this documentation is complete or
even correct. Besides, you're WWIV sysops, you should be used to bad
documentation by now... *grin*
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Obligatory Credits
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
I guess I need to thank the guys that badgered me into finally finishing
this. Jeff Leatherwood (Comx Dlr, 1@6035.WWIVnet, comx.dlr@comx.tlm.org),
and Chris Stanford (dodger@liquidhorizon.com, I don't have your WWIVnet
address!), and Dave Walker (Lockjaw the Ogre, lockjaw@fiita.net,
1@5555.WWIVnet, good luck in the election! *grin*).
Thanks also to those who have and are beta-testing it, I appreciate your
willingness to play the guinea pig.... *grin*
Also, thanks to Wayne for writing one of the few good BBS packages, and for
distributing the source so I could learn how to program in C in the first
place.
If you need to get in touch with me, I can be reached at any of the following
addresses.
bilbo@tlm.org (Internet)
bilbo@vnet.net (Internet)
1@6026 (WWIVnet)
1@7401 (ICEnet)
Kevin Carter@1:3667/9 (Fidonet)
And miscellaneous other addresses that I've accumulated. ;-)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Legal Crap
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
This software is being released as an early beta. This software may only
be distributed by electronic means (ie download), and may not be distributed
on CD-Rom, or from catalogs (written, electronic, or otherwise.) This
software is Copyright (c) 1995-1996, Kevin Carter, TLM Software. Waffle is
Copyright (c) 1992 Darkside International. WWIV is Copyright (c) 1988-1995,
Wayne Bell. Any other products mentioned are the property of their
respective holders.
This program was compiled using Borland C++ 3.1. Borland C++ 3.1 is
Copyright (c) 1990, 1992 Borland International, Inc.